package top.stmo;


import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.io.FileInputStream;
import java.sql.Connection;
import java.util.Properties;

/**
 *          数据库连接池  Druid
 */
public class DruidTest {

    /**
     *  数据库连接池是个容器，负责分配、管理数据库连接(Connection)
     *
     *  它允许应用程序重复使用一个现有的数据库连接，而不是再重新建立一个
     *
     *  释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏
     *
     *  好处：
     *      资源重用
     *      提升系统响应速度
     *      避免数据库连接遗漏
     *
     *  Driud使用：
     *   导入jar包 druid-1.1.12.jar
     *   定义配置文件
     *   加载配置文件
     *   获取数据库连接池对象
     *   获取连接
     *
     *  步骤：
     *   导入jar包
     *   定义配置文件
     *   加载配置文件
     *   获取连接池对象
     *   获取数据库连接
     *   获取执行sql的对象
     *   定义sql语句
     *   执行sql
     *   释放资源
     */
    public static void main(String[] args) throws Exception {

        //导入jar包

        //定义配置文件

        //加载配置文件
        Properties prop = new Properties();
        FileInputStream fis = new FileInputStream("jdbc-demo/src/druid.properties");
        prop.load(fis);

        //获取连接池对象
        DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);

        //获取数据库连接
        Connection connection = dataSource.getConnection();

        System.out.println(connection);

        fis.close();

    }
}
